home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / vmed.arc / ERED.ASM < prev    next >
Assembly Source File  |  1985-12-03  |  2KB  |  98 lines

  1. ;ERED/ASM - November 14, 1983 - Ed Ream Editor special
  2. ;Modified - February 10, 1984 - Added @SPEC for speed
  3. ;Modified - April 1, 1984 - Added @ERRET and EXIT to handle
  4. ;error calls properly and Extended Cursor Mode on exit
  5. ;
  6.     COM '<LC is copyrighted (c) 1982 by Jim Frimmel>
  7. ;
  8.     ORG    5200H
  9. @START    LD    HL,(4049H)    ;P/u Model I HIGH$
  10.     CALL    @MOD13        ;Test for Model I/III
  11.     JR    NZ,$+5        ;Go if Model I
  12.     LD    HL,(4411H)    ;  else use III's
  13.     LD    SP,HL        ;Set stack area
  14.     LD    HL,4423H    ;KFLAG$ on model I
  15.     JR    NZ,$+5        ;if model III
  16.     LD    HL,429FH    ;KFLAG$ on model III
  17.     SET    6,(HL)        ;Turn on ECM
  18.     CALL    @GO        ;Initialize
  19.     CALL    MAIN        ;Execute user prog
  20.     LD    HL,0        ;Set return code
  21.     PUSH    HL
  22.     CALL    EXIT        ;Back to DOS
  23. $$STEMP    DEFL    0        ;Init relative storage
  24. *GET LCMACS            ;Get macros used by LC
  25. ; establish LC options
  26. @_ARGS    DEFL    0
  27. @_REDIRECT DEFL    0
  28. @_KBECHO DEFL    0
  29. @_FIXBUFS DEFL    -1
  30. @_MAXFILES DEFL    2
  31. *GET ED2            ;Fetch user programs
  32. *GET ED3
  33. *GET ED4
  34. *GET ED5
  35. *GET ED6
  36. *GET ED7
  37. *GET ED8
  38. *GET ED9
  39. *GET ED10
  40. @ERRET
  41.     OR    11000000B
  42.     CALL    4409H
  43.     RET
  44. EXIT
  45.     LD    HL,@FVTBL
  46.     LD    B,@FCNT
  47. E1    LD    E,(HL)
  48.     INC    HL
  49.     LD    D,(HL)
  50.     INC    HL
  51.     LD    A,E
  52.     OR    D
  53.     JR    Z,E2
  54.     PUSH    BC
  55.     PUSH    HL
  56.     EX    DE,HL
  57.     CALL    @FCLS9
  58.     POP    HL
  59.     POP    BC
  60. E2    DJNZ    E1
  61.     LD    HL,4423H    ;KFLAG$ on model I
  62.     CALL    @MOD13        ;Which machine?
  63.     JR    NZ,$+5        ;Skip for model I
  64.     LD    HL,429FH    ;KFLAG$ on model III
  65.     RES    6,(HL)        ;Turn ECM off
  66.     $GA    HL
  67.     LD    A,H
  68.     OR    L
  69.     JP    Z,402DH
  70.     JP    4030H
  71. *SEARCH    IN/LIB            ;Installation lib
  72. *SEARCH LC/LIB            ;Standard lib always!
  73.     IFDEF    FOPEN
  74. *M
  75. @SPEC    PUSH    HL    ;Save registers
  76.     PUSH    DE
  77. $?1    LD    A,(HL)    ;Exit on space or less
  78.     CP    33
  79.     JR    C,$?3
  80.     CP    97    ;Convert l/c to U/C
  81.     JR    C,$?2
  82.     CP    123
  83.     JR    NC,$?2
  84.     XOR    32
  85. $?2    LD    (DE),A
  86.     INC    HL    ;bump pointers
  87.     INC    DE
  88.     JR    $?1    ;loop until exit char
  89. $?3    LD    A,3    ;terminate with ETX
  90.     LD    (DE),A
  91.     POP    DE    ;restore regs
  92.     POP    HL
  93.     RET
  94.     ENDIF
  95. $$STORG    EQU    $        ;Set to 1st storage byte
  96. @PROGEND DEFL    $$STORG+$$STEMP    ;Establish program end
  97.     END    @START
  98.